package com.ctshk.rpc.finance.req.onaccount;

import com.ctshk.rpc.finance.json.FileJson;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.time.LocalDateTime;
import java.util.List;

/**
 * 申请销账req
 */
@Data
@ApiModel(value = "OffAccountAddReq",description = "申请销账req")
public class OffAccountAddReq implements Serializable {

    @NotNull(message = "账户类型不能为空")
    @ApiModelProperty(value = "账户类型 1 大客户/代理商挂账,2 内部中心挂账,3 集团公司挂账",required = true)
    private Integer accountType;

    @NotNull(message = "挂账ID不能为空")
    @ApiModelProperty(value = "挂账ID",required = true)
    private Long onAccountId;

    @NotNull(message = "对账ID列表不能为空")
    @ApiModelProperty(value = "对账ID列表",required = true)
    private List<Long> billIdList;

    @ApiModelProperty(value = "是否使用预收款")
    private Integer useAdvanceMoney;

    @NotNull(message = "收款方式id不能为空")
    @ApiModelProperty(value = "收款方式id",required = true)
    private Long paymentMethodId;

    @NotNull(message = "收款方式不能为空")
    @ApiModelProperty(value = "收款方式名称",required = true)
    private String paymentMethodName;

    @NotNull(message = "收款时间不能为空")
    @ApiModelProperty(value = "收款时间",required = true)
    private LocalDateTime collectionTime;

    @ApiModelProperty(value = "是否返还额度")
    private Integer isReturnAmount;

    @ApiModelProperty(value = "销账说明")
    private String remark;

    @NotNull(message = "收款凭证JSON不能为空")
    @ApiModelProperty(value = "收款凭证JSON",required = true)
    private List<FileJson> collectionFilesJson;

    @ApiModelProperty(value = "用户ID")
    private Long userId;

}
